Sorted Sets (যাকে সাধারণত ZSET বলা হয়) হল রেডিসের একটি ডেটা স্ট্রাকচার, যেখানে প্রতিটি এলিমেন্ট একটি কী এবং তার সাথে একটি স্কোর (numerical value) যুক্ত থাকে। এলিমেন্টগুলি তাদের স্কোর অনুসারে সাজানো থাকে, এবং আপনি এগুলোর মধ্যে বিভিন্ন ধরনের অপারেশন যেমন ZADD, ZRANGE, ZREM, এবং ZSCORE করতে পারেন।
Sorted Set-এ ডেটা সংরক্ষণ করা হয় স্কোর অনুযায়ী সজ্জিত অবস্থায়, যেখানে স্কোর হল একটি ফ্লোট মান এবং এলিমেন্ট হল একটি স্ট্রিং। ZSET-এর সুবিধা হল এটি এলিমেন্টগুলিকে দ্রুত অনুসন্ধান, যোগ করা এবং মুছে ফেলা যায় স্কোর অনুযায়ী।
Sorted Sets-এ কিছু প্রধান কমান্ড এবং তাদের ব্যাখ্যা
1. ZADD (Sorted Set-এ নতুন এলিমেন্ট যোগ করা)
ZADD কমান্ড ব্যবহার করে আপনি একটি Sorted Set-এ নতুন এলিমেন্ট যোগ করতে পারেন এবং তার সাথে একটি স্কোর সেট করতে পারেন।
সিনট্যাক্স:
ZADD <key> <score> <member> [<score> <member> ...]
উদাহরণ:
ZADD leaderboard 10 "Alice" 20 "Bob" 15 "Charlie"
এখানে leaderboard হলো Sorted Set-এর কী, এবং "Alice", "Bob", "Charlie" হলো এলিমেন্ট, তাদের স্কোর যথাক্রমে 10, 20, এবং 15।
2. ZRANGE (Sorted Set থেকে এলিমেন্ট রেঞ্জ আনা)
ZRANGE কমান্ড ব্যবহার করে আপনি একটি Sorted Set থেকে নির্দিষ্ট রেঞ্জের এলিমেন্ট সংগ্রহ করতে পারেন। রেঞ্জটি স্কোর বা ইনডেক্স অনুযায়ী হতে পারে।
সিনট্যাক্স:
ZRANGE <key> <start> <stop> [WITHSCORES]
উদাহরণ:
ZRANGE leaderboard 0 -1 WITHSCORES
এটি leaderboard Sorted Set-এর সব এলিমেন্টকে স্কোরসহ প্রদর্শন করবে, যেখানে 0 থেকে -1 (পুরো রেঞ্জ) উল্লেখ করা হয়েছে।
আউটপুট:
1) "Alice"
2) "10"
3) "Charlie"
4) "15"
5) "Bob"
6) "20"
WITHSCORES অপশনটি ব্যবহার করলে স্কোরের সাথে এলিমেন্টগুলোও দেখানো হয়।
3. ZREM (Sorted Set থেকে এলিমেন্ট মুছে ফেলা)
ZREM কমান্ড ব্যবহার করে আপনি একটি Sorted Set থেকে এক বা একাধিক এলিমেন্ট মুছে ফেলতে পারেন।
সিনট্যাক্স:
ZREM <key> <member> [<member> ...]
উদাহরণ:
ZREM leaderboard "Alice" "Charlie"
এটি leaderboard Sorted Set থেকে "Alice" এবং "Charlie" নামক এলিমেন্টগুলো মুছে ফেলবে।
4. ZSCORE (Sorted Set থেকে একটি এলিমেন্টের স্কোর পাওয়া)
ZSCORE কমান্ড ব্যবহার করে আপনি একটি Sorted Set থেকে কোনো নির্দিষ্ট এলিমেন্টের স্কোর পেতে পারেন।
সিনট্যাক্স:
ZSCORE <key> <member>
উদাহরণ:
ZSCORE leaderboard "Bob"
এটি "Bob" এলিমেন্টের স্কোর প্রদান করবে, যেমন 20।
Sorted Set-এর অন্যান্য গুরুত্বপূর্ণ ফিচার
ZINCRBY:
ZINCRBYকমান্ড ব্যবহার করে কোনো এলিমেন্টের স্কোর বাড়ানো যেতে পারে।ZINCRBY leaderboard 5 "Alice"এটি
"Alice"এর স্কোর 5 বাড়িয়ে দেবে।ZRANGEBYSCORE:
ZRANGEBYSCOREকমান্ড ব্যবহার করে আপনি নির্দিষ্ট স্কোর রেঞ্জের মধ্যে থাকা এলিমেন্টগুলো পেতে পারেন।ZRANGEBYSCORE leaderboard 10 20এটি 10 থেকে 20 স্কোরের মধ্যে থাকা সব এলিমেন্ট রিটার্ন করবে।
ZREVRANGE:
ZREVRANGEকমান্ড দিয়ে আপনি সর্বোচ্চ স্কোর থেকে সর্বনিম্ন স্কোর পর্যন্ত এলিমেন্টগুলো পেতে পারেন।ZREVRANGE leaderboard 0 -1 WITHSCORESএটি এলিমেন্টগুলো রিভার্স অর্ডারে (ডিসেন্ডিং অর্ডারে) সাজিয়ে প্রদর্শন করবে।
সারাংশ
Sorted Set একটি শক্তিশালী ডেটা স্ট্রাকচার, যেখানে প্রতিটি এলিমেন্টের সাথে একটি স্কোর যুক্ত থাকে এবং এই স্কোর অনুসারে এলিমেন্টগুলি সাজানো থাকে। রেডিসের ZADD, ZRANGE, ZREM, এবং ZSCORE কমান্ডের মাধ্যমে আপনি Sorted Set-এ এলিমেন্ট যোগ করা, এলিমেন্টের স্কোর অনুযায়ী রেঞ্জ পাওয়া, এলিমেন্ট মুছে ফেলা এবং স্কোর অনুসন্ধান করতে পারেন। Sorted Set র্যাঙ্কিং সিস্টেম, লিডারবোর্ড, রেটিং সিস্টেম এবং আরও অনেক ধরনের প্রয়োগের জন্য ব্যবহার করা হয়।
Read more